package com.ttl.bc.ap.invoice.bean;

import java.io.Serializable;
import java.util.Date;



@SuppressWarnings({ "serial", "unchecked" })
public class BCAPInvoiceSubBean implements Serializable, Comparable{
		
	/*BCAPInvoiceSub	รายวันซื้อย่อย*/ 						
	/*Attribute Name				Description						Data Type	Length	PK	AK	FK	References*/
	
	private	Integer	rowOrder;		//	เป็นเลข Running ของ Table		Integer				Y			
//	private	Integer	behindIndex;//	1=ปกติ ใช้เพื่อ Sort ในรายงาน Stock Card 	SMALLINT					
//									//	คือ DocDate,BehindIndex,MyType						
	private	Integer	myType;			//	ลำดับรายวันในรายงานสินค้าและวัตถุดิบ = 2	Smallint
//	ถูกเอาไปทำ mapping ใน BCAPInvoice.hbm.xml แล้ว
//	private	String	docNo;			//	เลขที่เอกสาร (จากหัวเอกสาร)			varchar		20				
	private	String	taxNo;			//	เลขที่ใบกำกับใช้ออกรายงานเคลื่อนไหวสินค้า	varchar		20				
	private	Integer	taxType;		//	ประเภทภาษี (0=แยกนอก,1=รวมใน )		Smallint					
	private	String	itemCode;		//	รหัสสินค้า						varchar		25				Y	BCItem
	private	Date	docDate;		//	วันที่เอกสาร  (จากหัวเอกสาร)			Date					
	private	String	apCode;			//	รหัสเจ้าหนี้						varchar		20				Y	BCAP
	private	String	departCode;		//	รหัสแผนก (จากหัวเอกสาร)			varchar		10				Y	BCDepartment
	private	String	myDescription;	//	คำอธิบายรายการ					varchar		100				
	private	String	whCode;			//	รหัสคลังสินค้า					varchar		10				Y	BCWarehouse
	private	String	shelfCode;		//	รหัสที่เก็บสินค้า					varchar		15				Y	BCShelf
	private	Double	cnQty;			//	จำนวนที่ส่งคืน					Double					
	private	Double	grRemainQty;	//	ยอดที่ยังไม่ทำ IR					Double					
	private	Double	qty;			//	จำนวนสินค้า						Double					
	private	Double	price;			//	ราคา/หน่วย						Double					
	private	String	discountWord;	//	ส่วนลด %						varchar		35				
	private	Double	discountAmount;	//	ส่วนลดจำนวนเงิน					Double					
	private	Double	amount;			//	จำนวนเงิน(รวมภาษีถ้าเป็นรวมใน)		Double					
	private	Double	netAmount;		//	ยอดถอดภาษีกรณีที่เป็นรวมใน			Double					
	private	Double	homeAmount;		//	NetAmount * ExchangeRate	Double					
	private	Double	balanceAmount;	//	ยอดคงเหลือหลังตัดชำระกรณีที่เป็นบริการ		Double					
	private	Double	sumOfExpCost;	//	เป็นเงินบาท						Double					
	private	String	unitCode;		//	รหัสหน่วยนับ						varchar		10				Y	BCItemUnit
	private	String	oppositeUnit;	//	หน่วยนับขนาน					varchar		10				Y	BCItemUnit
	private	Double	oppositeQty;	//	จำนวนที่ 2						Double					
	private	String	poRefNo;		//	อ้างอิงใบPO						varchar		20
	private	String	irRefNo;		//	เพิ่ม BC 5.5					varchar		20
	private	Integer	stockType;		//	ประเภทของสินค้า เช่น 0=ทั่วไป,			Smallint					Y	BCItemType
		 							//	1=ของแถม, 2=สินค้าชุด,3=สินค้าย่อย						
	private	Integer	exceptTax;		//	ยกเว้นภาษีหรือไม่ 					Smallint					
									//	0= ไม่ยกเว้น(ปกติ) 1= ยกเว้น						
	private	Integer	transState;		//	สถานะของ transaction			Smallint					
									//	0 = new transaction						
									//	1 = old transaction 						
	private	Integer	isCancel;		//	0 = Not cancel 1 = Canceled	Smallint					
	private	Integer	lineNumber;		//	หมายเลขบรรทัด					Smallint					
	private	String	allocateCode;	//	รหัสการจัดสรร					varchar		10				Y	BCAllocate
	private	String	projectCode;	//	รหัสโครงการ						varchar		10				Y	BCProject
	private	String	currencyCode;	//	รหัสสกุลเงิน						varchar		10				Y	BCCurrency
	private	Double	exchangeRate;	//	อัตราแลกเปลี่ยน					Double						
	private	String	barCode;		//	รหัสบาร์โค้ด						varchar		20				Y	BCBarCodeMaster
	private	String	categoryCode;	//	รหัสหมวดของสินค้า					varchar		10				Y	BCItemCategory
	private	String	groupCode;		//	รหัสกลุ่มของสินค้า					varchar		10				Y	BCItemGroup
	private	String	brandCode;		//	รหัสยี่ห้อสินค้า					varchar		10				Y	BCItemBrand
	private	String	typeCode;		//	รหัสชนิดสินค้า					varchar		10				Y	BCItemType
	private	String	formatCode;		//	รหัสรูปแบบของสินค้า				varchar		10				Y	BCItemFormat
	private	String	itemName;		//	มีเพิ่มใน BC 5.5
	private	Integer	isPromotion;	//	มีเพิ่มใน BC 5.5					smallint
	private	Integer	poRefLinenum;	//	มีเพิ่มใน BC 5.5					smallint
	private	Double	fixUnitCost;	//	มีเพิ่มใน BC 5.5					money
	private	Double	fixUnitQty;		//	มีเพิ่มใน BC 5.5					money
	private	Double	averageCost;	//	มีเพิ่มใน BC 5.5					money
	
	private	Integer	statusReceive;	//	มีเพิ่มใน BC 5.5					smallint
	private	String	lotNumber;		//	มีเพิ่มใน BC 5.5					varchar		50
	private	Date	lotExpireDate;	//	มีเพิ่มใน BC 5.5					datetime
	private	String	lotMyDesc;		//	มีเพิ่มใน BC 5.5					varchar		50
	private	Double	sumOfCost;		//	มีเพิ่มใน BC 5.5					money
	private	String	colorCode;		//	มีเพิ่มใน BC 5.5					varchar		50
	private	String	sizeCode;		//	มีเพิ่มใน BC 5.5					varchar		50
	private	String	styleCode;		//	มีเพิ่มใน BC 5.5					varchar		50
	private	String	jobNo;			//	มีเพิ่มใน BC 5.5					varchar		50
	private	Double	taxRate;		//	มีเพิ่มใน BC 5.5					smallmoney
	private	Double	packingRate1;	//	มีเพิ่มใน BC 5.5					smallmoney
	private	Double	packingRate2;	//	มีเพิ่มใน BC 5.5					smallmoney
	private	Integer	isProcess;		//	มีเพิ่มใน BC 5.5					smallint
	private	Integer	islockCost;		//	มีเพิ่มใน BC 5.5					smallint
	private	Integer	discCashCard;	//	มีเพิ่มใน BC 5.5					smallmoney
	private	Double	wTaxAmount;		//	มีเพิ่มใน BC 5.5					money
	private	Double	baseWTax;		//	มีเพิ่มใน BC 5.5					money
	private	Integer	isExport;		//	มีเพิ่มใน BC 5.5					smallint
	private	String	creatorCode;	//	มีเพิ่มใน BC 5.5					varchar		10
	private	Date	createDateTime;	//	มีเพิ่มใน BC 5.5					datetime
	private	String	lasteditorCode;	//	มีเพิ่มใน BC 5.5					varchar		10
	private	Date	lastEditDateT;	//	มีเพิ่มใน BC 5.5					datetime
	private	Double	factorPrice;	//	มีเพิ่มใน BC 5.5					money
	private	Double	dc;				//	มีเพิ่มใน BC 5.5					money
	private	Double	taxAmount;		//	มีเพิ่มใน BC 5.5					money
	private	Double	totalAmount;	//	มีเพิ่มใน BC 5.5					money
	private	String	docBJ;			//	มีเพิ่มใน BC 5.5					varchar		50
	private	Date	dateBJ;			//	มีเพิ่มใน BC 5.5					datetime
	private	String	bj;				//	มีเพิ่มใน BC 5.5					varchar		50
	private	Integer	runBJ;			//	มีเพิ่มใน BC 5.5					int
	private	String	temp_transfered;//	มีเพิ่มใน BC 5.5					varchar		1
	private	Double	sumOfCost2;		//	มีเพิ่มใน BC 5.5					money
	private	String	personCode;		//	มีเพิ่มใน BC 5.5					varchar		20
				
	private	String	stkReqNo;		//	ไว้สำหรับเก็บ เลขที่ พ.1 ไม่จำเป็นต้อง mapping
	private	String	ittl_purchaseCode;//ไว้สำหรับสร้างใบ พ.2 โดยการเลือก docNo ตัวเดียวให้แสดง po ทั้งหมดเป็นใบ พ.2 เลย
	private	Integer	ittl_rowOrderOfStkReq;// ไว้สำหรับเก็บค่าของ rowOrder ของรายการขอซื้อ โดยจะใช้ rowOrder นี้กลับไป update po อีกที 
	private BCAPInvoiceBean bcAPInvoice;

	
    public int compareTo(Object examObj){
        if (examObj != null) {
        	BCAPInvoiceSubBean a = (BCAPInvoiceSubBean)examObj;

            return ( (""+ittl_purchaseCode).compareTo(""+a.getIttl_purchaseCode()));
        }
        return 0;
    }	
    
	public Integer getIttl_rowOrderOfStkReq() {
		return ittl_rowOrderOfStkReq;
	}

	public void setIttl_rowOrderOfStkReq(Integer ittlRowOrderOfStkReq) {
		ittl_rowOrderOfStkReq = ittlRowOrderOfStkReq;
	}

	public String getIttl_purchaseCode() {
		return ittl_purchaseCode;
	}

	public void setIttl_purchaseCode(String ittlPurchaseCode) {
		ittl_purchaseCode = ittlPurchaseCode;
	}

	public String getStkReqNo() {
		return stkReqNo;
	}

	public void setStkReqNo(String stkReqNo) {
		this.stkReqNo = stkReqNo;
	}

	public Integer getRowOrder() {
		return rowOrder;
	}

	public void setRowOrder(Integer rowOrder) {
		this.rowOrder = rowOrder;
	}

	public Integer getMyType() {
		return myType;
	}

	public void setMyType(Integer myType) {
		this.myType = myType;
	}

	public String getTaxNo() {
		return taxNo;
	}

	public void setTaxNo(String taxNo) {
		this.taxNo = taxNo;
	}

	public Integer getTaxType() {
		return taxType;
	}

	public void setTaxType(Integer taxType) {
		this.taxType = taxType;
	}

	public String getItemCode() {
		return itemCode;
	}

	public void setItemCode(String itemCode) {
		this.itemCode = itemCode;
	}

	public Date getDocDate() {
		return docDate;
	}

	public void setDocDate(Date docDate) {
		this.docDate = docDate;
	}

	public String getApCode() {
		return apCode;
	}

	public void setApCode(String apCode) {
		this.apCode = apCode;
	}

	public String getDepartCode() {
		return departCode;
	}

	public void setDepartCode(String departCode) {
		this.departCode = departCode;
	}

	public String getMyDescription() {
		return myDescription;
	}

	public void setMyDescription(String myDescription) {
		this.myDescription = myDescription;
	}

	public String getWhCode() {
		return whCode;
	}

	public void setWhCode(String whCode) {
		this.whCode = whCode;
	}

	public String getShelfCode() {
		return shelfCode;
	}

	public void setShelfCode(String shelfCode) {
		this.shelfCode = shelfCode;
	}

	public Double getCnQty() {
		return cnQty;
	}

	public void setCnQty(Double cnQty) {
		this.cnQty = cnQty;
	}

	public Double getGrRemainQty() {
		return grRemainQty;
	}

	public void setGrRemainQty(Double grRemainQty) {
		this.grRemainQty = grRemainQty;
	}

	public Double getQty() {
		return qty;
	}

	public void setQty(Double qty) {
		this.qty = qty;
	}

	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}

	public String getDiscountWord() {
		return discountWord;
	}

	public void setDiscountWord(String discountWord) {
		this.discountWord = discountWord;
	}

	public Double getDiscountAmount() {
		return discountAmount;
	}

	public void setDiscountAmount(Double discountAmount) {
		this.discountAmount = discountAmount;
	}

	public Double getAmount() {
		return amount;
	}

	public void setAmount(Double amount) {
		this.amount = amount;
	}

	public Double getNetAmount() {
		return netAmount;
	}

	public void setNetAmount(Double netAmount) {
		this.netAmount = netAmount;
	}

	public Double getHomeAmount() {
		return homeAmount;
	}

	public void setHomeAmount(Double homeAmount) {
		this.homeAmount = homeAmount;
	}

	public Double getBalanceAmount() {
		return balanceAmount;
	}

	public void setBalanceAmount(Double balanceAmount) {
		this.balanceAmount = balanceAmount;
	}

	public Double getSumOfExpCost() {
		return sumOfExpCost;
	}

	public void setSumOfExpCost(Double sumOfExpCost) {
		this.sumOfExpCost = sumOfExpCost;
	}

	public String getUnitCode() {
		return unitCode;
	}

	public void setUnitCode(String unitCode) {
		this.unitCode = unitCode;
	}

	public String getOppositeUnit() {
		return oppositeUnit;
	}

	public void setOppositeUnit(String oppositeUnit) {
		this.oppositeUnit = oppositeUnit;
	}

	public Double getOppositeQty() {
		return oppositeQty;
	}

	public void setOppositeQty(Double oppositeQty) {
		this.oppositeQty = oppositeQty;
	}

	public String getPoRefNo() {
		return poRefNo;
	}

	public void setPoRefNo(String poRefNo) {
		this.poRefNo = poRefNo;
	}

	public String getIrRefNo() {
		return irRefNo;
	}

	public void setIrRefNo(String irRefNo) {
		this.irRefNo = irRefNo;
	}

	public Integer getStockType() {
		return stockType;
	}

	public void setStockType(Integer stockType) {
		this.stockType = stockType;
	}

	public Integer getExceptTax() {
		return exceptTax;
	}

	public void setExceptTax(Integer exceptTax) {
		this.exceptTax = exceptTax;
	}

	public Integer getTransState() {
		return transState;
	}

	public void setTransState(Integer transState) {
		this.transState = transState;
	}

	public Integer getIsCancel() {
		return isCancel;
	}

	public void setIsCancel(Integer isCancel) {
		this.isCancel = isCancel;
	}

	public Integer getLineNumber() {
		return lineNumber;
	}

	public void setLineNumber(Integer lineNumber) {
		this.lineNumber = lineNumber;
	}

	public String getAllocateCode() {
		return allocateCode;
	}

	public void setAllocateCode(String allocateCode) {
		this.allocateCode = allocateCode;
	}

	public String getProjectCode() {
		return projectCode;
	}

	public void setProjectCode(String projectCode) {
		this.projectCode = projectCode;
	}

	public String getCurrencyCode() {
		return currencyCode;
	}

	public void setCurrencyCode(String currencyCode) {
		this.currencyCode = currencyCode;
	}

	public Double getExchangeRate() {
		return exchangeRate;
	}

	public void setExchangeRate(Double exchangeRate) {
		this.exchangeRate = exchangeRate;
	}

	public String getBarCode() {
		return barCode;
	}

	public void setBarCode(String barCode) {
		this.barCode = barCode;
	}

	public String getCategoryCode() {
		return categoryCode;
	}

	public void setCategoryCode(String categoryCode) {
		this.categoryCode = categoryCode;
	}

	public String getGroupCode() {
		return groupCode;
	}

	public void setGroupCode(String groupCode) {
		this.groupCode = groupCode;
	}

	public String getBrandCode() {
		return brandCode;
	}

	public void setBrandCode(String brandCode) {
		this.brandCode = brandCode;
	}

	public String getTypeCode() {
		return typeCode;
	}

	public void setTypeCode(String typeCode) {
		this.typeCode = typeCode;
	}

	public String getFormatCode() {
		return formatCode;
	}

	public void setFormatCode(String formatCode) {
		this.formatCode = formatCode;
	}

	public String getItemName() {
		return itemName;
	}

	public void setItemName(String itemName) {
		this.itemName = itemName;
	}

	public Integer getIsPromotion() {
		return isPromotion;
	}

	public void setIsPromotion(Integer isPromotion) {
		this.isPromotion = isPromotion;
	}

	public Integer getPoRefLinenum() {
		return poRefLinenum;
	}

	public void setPoRefLinenum(Integer poRefLinenum) {
		this.poRefLinenum = poRefLinenum;
	}

	public Double getFixUnitCost() {
		return fixUnitCost;
	}

	public void setFixUnitCost(Double fixUnitCost) {
		this.fixUnitCost = fixUnitCost;
	}

	public Double getFixUnitQty() {
		return fixUnitQty;
	}

	public void setFixUnitQty(Double fixUnitQty) {
		this.fixUnitQty = fixUnitQty;
	}

	public Double getAverageCost() {
		return averageCost;
	}

	public void setAverageCost(Double averageCost) {
		this.averageCost = averageCost;
	}

	public Integer getStatusReceive() {
		return statusReceive;
	}

	public void setStatusReceive(Integer statusReceive) {
		this.statusReceive = statusReceive;
	}

	public String getLotNumber() {
		return lotNumber;
	}

	public void setLotNumber(String lotNumber) {
		this.lotNumber = lotNumber;
	}

	public Date getLotExpireDate() {
		return lotExpireDate;
	}

	public void setLotExpireDate(Date lotExpireDate) {
		this.lotExpireDate = lotExpireDate;
	}

	public String getLotMyDesc() {
		return lotMyDesc;
	}

	public void setLotMyDesc(String lotMyDesc) {
		this.lotMyDesc = lotMyDesc;
	}

	public Double getSumOfCost() {
		return sumOfCost;
	}

	public void setSumOfCost(Double sumOfCost) {
		this.sumOfCost = sumOfCost;
	}

	public String getColorCode() {
		return colorCode;
	}

	public void setColorCode(String colorCode) {
		this.colorCode = colorCode;
	}

	public String getSizeCode() {
		return sizeCode;
	}

	public void setSizeCode(String sizeCode) {
		this.sizeCode = sizeCode;
	}

	public String getStyleCode() {
		return styleCode;
	}

	public void setStyleCode(String styleCode) {
		this.styleCode = styleCode;
	}

	public String getJobNo() {
		return jobNo;
	}

	public void setJobNo(String jobNo) {
		this.jobNo = jobNo;
	}

	public Double getTaxRate() {
		return taxRate;
	}

	public void setTaxRate(Double taxRate) {
		this.taxRate = taxRate;
	}

	public Double getPackingRate1() {
		return packingRate1;
	}

	public void setPackingRate1(Double packingRate1) {
		this.packingRate1 = packingRate1;
	}

	public Double getPackingRate2() {
		return packingRate2;
	}

	public void setPackingRate2(Double packingRate2) {
		this.packingRate2 = packingRate2;
	}

	public Integer getIsProcess() {
		return isProcess;
	}

	public void setIsProcess(Integer isProcess) {
		this.isProcess = isProcess;
	}

	public Integer getIslockCost() {
		return islockCost;
	}

	public void setIslockCost(Integer islockCost) {
		this.islockCost = islockCost;
	}

	public Integer getDiscCashCard() {
		return discCashCard;
	}

	public void setDiscCashCard(Integer discCashCard) {
		this.discCashCard = discCashCard;
	}

	public Double getwTaxAmount() {
		return wTaxAmount;
	}

	public void setwTaxAmount(Double wTaxAmount) {
		this.wTaxAmount = wTaxAmount;
	}

	public Double getBaseWTax() {
		return baseWTax;
	}

	public void setBaseWTax(Double baseWTax) {
		this.baseWTax = baseWTax;
	}

	public Integer getIsExport() {
		return isExport;
	}

	public void setIsExport(Integer isExport) {
		this.isExport = isExport;
	}

	public String getCreatorCode() {
		return creatorCode;
	}

	public void setCreatorCode(String creatorCode) {
		this.creatorCode = creatorCode;
	}

	public Date getCreateDateTime() {
		return createDateTime;
	}

	public void setCreateDateTime(Date createDateTime) {
		this.createDateTime = createDateTime;
	}

	public String getLasteditorCode() {
		return lasteditorCode;
	}

	public void setLasteditorCode(String lasteditorCode) {
		this.lasteditorCode = lasteditorCode;
	}

	public Date getLastEditDateT() {
		return lastEditDateT;
	}

	public void setLastEditDateT(Date lastEditDateT) {
		this.lastEditDateT = lastEditDateT;
	}

	public Double getFactorPrice() {
		return factorPrice;
	}

	public void setFactorPrice(Double factorPrice) {
		this.factorPrice = factorPrice;
	}

	public Double getDc() {
		return dc;
	}

	public void setDc(Double dc) {
		this.dc = dc;
	}

	public Double getTaxAmount() {
		return taxAmount;
	}

	public void setTaxAmount(Double taxAmount) {
		this.taxAmount = taxAmount;
	}

	public Double getTotalAmount() {
		return totalAmount;
	}

	public void setTotalAmount(Double totalAmount) {
		this.totalAmount = totalAmount;
	}

	public String getDocBJ() {
		return docBJ;
	}

	public void setDocBJ(String docBJ) {
		this.docBJ = docBJ;
	}

	public Date getDateBJ() {
		return dateBJ;
	}

	public void setDateBJ(Date dateBJ) {
		this.dateBJ = dateBJ;
	}

	public String getBj() {
		return bj;
	}

	public void setBj(String bj) {
		this.bj = bj;
	}

	public Integer getRunBJ() {
		return runBJ;
	}

	public void setRunBJ(Integer runBJ) {
		this.runBJ = runBJ;
	}

	public String getTemp_transfered() {
		return temp_transfered;
	}

	public void setTemp_transfered(String tempTransfered) {
		temp_transfered = tempTransfered;
	}

	public Double getSumOfCost2() {
		return sumOfCost2;
	}

	public void setSumOfCost2(Double sumOfCost2) {
		this.sumOfCost2 = sumOfCost2;
	}

	public String getPersonCode() {
		return personCode;
	}

	public void setPersonCode(String personCode) {
		this.personCode = personCode;
	}

	public BCAPInvoiceBean getBcAPInvoice() {
		return bcAPInvoice;
	}

	public void setBcAPInvoice(BCAPInvoiceBean bcAPInvoice) {
		this.bcAPInvoice = bcAPInvoice;
	}
		
	
	

	
}
